package com.gang.mars.basic.generictype.demo9.annotation;

import com.gang.mars.basic.generictype.demo9.selectors.GangMergedAnnotationSelector;

import java.util.function.Predicate;

/**
 * @Author：gang.chen
 * @Date：2023/6/19 8:33
 */
public interface GangMergedAnnotations extends Iterable<GangMergedAnnotation<GangAnnotation>>
{
    <A extends GangAnnotation> GangMergedAnnotation<A> get(Class<A> annotationType);


    <A extends GangAnnotation> GangMergedAnnotation<A> get(String annotationType, Predicate<? super GangMergedAnnotation<A>> predicate, GangMergedAnnotationSelector<A> selector);
}
